package com.fingard.dsp.bank.directbank.pab02.Util.api.utils;

import sun.misc.BASE64Decoder;

import java.io.IOException;

/**
 * 安全工具处理类
 * 
 */
public class ScrtUtil {

	/**
	 * base64的解码，从字符串转换成字符数组
	 * 
	 * @param base64String
	 *            base64的编码数据
	 * @return 原始数据
	 */
	public static byte[] decodeBase64(String base64String) {
		byte[] byteArray = null;
		try {
			byteArray = new BASE64Decoder().decodeBuffer(base64String);
		} catch (IOException e) {
			return "".getBytes();
		}
		return byteArray;
	}

	/**
	 * ESB系统的解密处理
	 * 
	 * @param str
	 *            需要解密的字符串
	 * @return 解密后的字符串
	 */
	public static String decryptEsb(String str) {
		if (str == null)
			return str;
		byte[] scrt = decodeBase64(str);
		byte[] tmp1 = Des.decrypt3DES(scrt, Des.getDesKey());
		byte[] tmp = new byte[tmp1.length / 2];
		for (int i = 0; i < tmp.length; i++)
			tmp[i] = tmp1[2 * i];

		String retStr = new String(tmp);
		return retStr;
	}

	public static void main(String[] args) {
		System.out.println(ScrtUtil.decryptEsb("${3DES}x37f1pwrniivZxK6jWqqfQ==".substring(7)));
	}
}
